home *** CD-ROM | disk | FTP | other *** search
- 10 REM+--------------------------------- !
- 11 REM! MAP FOR ULTIMA IV GAME ! WRITTEN BY BOYD RAY
- 12 REM! EDMONTON, ALBERTA !
- 15 REM! THIS PROGRAM PRINTS A COMPLETE ! MAP OF BRITANNIA IN THE FORM
- 20 REM! OF TWO HALVES (LEFT AND RIGHT) ! EACH OF WHICH IS COMPRISED OF
- 30 REM! 256 LINES OF 128 CHARACTERS. ! LATITUDE AND LONGITUDE GRIDS
- 40 REM! OCCUR EVERY 16 LINES BOTH WAYS ! AND LABELING IS PROVIDED ON ALL
- 50 REM! FOUR SIDES. LANDMARKS ARE SIG- ! NIFIED BY SELECTED CHARACTERS.
- 60 REM! SEE REMARKS BELOW. TIME TO PRINT ! THE ENTIRE MAP IS ABOUT 4 HOURS
- 70 REM! AND 15 MINUTES. CODE ON LINES ! 1000-1015 WORKS ON SEIKO - MAY
- 79 REM! NEED CHANGES TO SUIT OTHERS. ! LANDMARK AND TERRAIN CHARACTERS
- 80 REM! ON LINES 4005 AND 4156-4164 MAY ! CHANGED TO SUIT PREFERENCES.
- 81 REM! FOR SMALLER PORTIONS OF THE MAP, ! CHANGE LINES 4070 AND 4080;
- 82 REM! PAGE=0 PRINTS LEFT HALF, ! PAGE=1 PRINTS RIGHT HALF,
- 83 REM! ROW=0TO7 PRINTS TOP HALF, ! ROW=8TO15 PRINTS BOT. HALF.
- 84 REM! TO PRINT LEFT HALF ONLY, CHANGE ! LINES;
- 85 REM! 4070 PAGE=0 ! 4228 :
- 86 REM! TO PRINT RIGHT HALF ONLY, CHANGE ! LINES;
- 87 REM! 4070 PAGE=1 ! 4228 :
- 88 REM! MAP COULD BE DONE IN 4 VERTICAL ! STRIPS OF 64-67 CHARACTERS,
- 89 REM! UN-COMPRESSED, BY CHANGING LINES ! 4070, 4228 AND;
- 90 REM! 4100 SET=0 (LEFT QUARTER) ! 4100 SET=1 (RIGHT QUARTER)
- 91 REM! 4210 IF PAGE=0THEN4214: IF ! SET=0THEN4214
- 97 REM! SEXTANTS MAY BE PURCHASED IN A ! VILLAGE ON AN ISLE NEAR THE
- 98 REM! CENTER OF THE WORLD... ! ..GOOD LUCK AND HAPPY EXPLORING
- 99 REM+---------------------------------
- 1000 OPEN2,4,10:PRINT#2:REM RESET SEIKO
- 1005 OPEN9,4,13:PRINT#9:REM CONDENSED
- 1010 OPEN10,4,6:PRINT#10,CHR$(15):REM SET VERTICAL PITCH
- 1015 OPEN1,4,7
- 2000 PRINT"[147]INSERT BRITANNIA DISK AND PRESS SPACE."
- 2010 GETQ$:IFQ$=""THEN2010
- 2020 PRINT"[147]WORKING..."
- 2025 PRINT"PRESS SPACE ANYTIME TO ABORT"
- 4000 DIM TRACK(1,15,1,3),SECT(1,15,1,3)
- 4005 SUB$=".=+-X*O@DTCVCCC"
- 4010 FORI=0TO1
- 4015 FORJ=0TO15
- 4020 FOR K=0TO1
- 4025 FORL=0TO3
- 4030 READ TR(I,J,K,L),SE(I,J,K,L)
- 4035 NEXT
- 4040 NEXT
- 4045 NEXT
- 4050 NEXT:PRINT""
- 4055 OPEN15,8,15:PRINT#15,"I0":INPUT#15,EN$,EM$,ET$,ES$
- 4060 IFEN$<>"00"THEN4250
- 4065 FORCHAN=3TO6:OPEN CH,8,CH,"#":NEXT
- 4066 PRINT#1,CHR$(12):REM SYNCHRONIZE AT TOP OF FORM
- 4070 FOR PAGE=0TO1:PG$="LEFT":IF PAGE=1 THEN PG$="RIGHT"
- 4080 FOR ROW=0TO15
- 4081 IFROW>0THEN4090
- 4082 IFPAGE=0THENPRINT#1," ";
- 4083 PRINT#1," ";:FORI=0TO7:PRINT#1,CHR$(I*(PAGE+1)+97);
- 4084 PRINT#1," ";:NEXT:PRINT#1,CHR$(13);
- 4085 PRINT#1,CHR$(13);:IFPAGE=0THENPRINT#1," ";
- 4086 FORI=0TO7:FORJ=0TO15:PRINT#1,CHR$(J+65);
- 4087 NEXTJ,I:PRINT#1,CHR$(13);
- 4088 IFPAGE=0THENPRINT#1," ";
- 4089 FORI=0TO127:PRINT#1,CHR$(96);:NEXT:PRINT#1,CHR$(13);
- 4090 FOR LINE=0TO15:PTR=LINE*16
- 4092 PRINT"PRINTING "PG$" PAGE, LINE";RO*16+LI+1;" OF 256"
- 4100 FOR SET=0TO1
- 4110 FOR CHAN=3TO6
- 4120 PRINT#15,"U1";CH;0;TR(PA,RO,SE,CH-3);SE(PA,RO,SE,CH-3)
- 4125 PRINT#15,"B-P";CH;PTR
- 4140 FOR COL=0TO15
- 4141 GETQ$:IFQ$<>""THEN4250
- 4145 GET#CH,B$
- 4150 IFB$=""THENB$=CHR$(0)
- 4155 L=ASC(B$)
- 4156 IFL=76THENL$="%":GOTO4170
- 4160 IFL=70THENL$="#":GOTO4170
- 4161 IFL=61THENL$="A":GOTO4170
- 4162 IFL=30THENL$="S":GOTO4170
- 4163 IFL=29THENL$="R":GOTO4170
- 4164 IFL=23THENL$="B":GOTO4170
- 4166 IFL>15ORL=0THENL$=" ":GOTO4170
- 4167 L$=MID$(SUB$,L,1)
- 4170 IFL$=" "AND COL=15THENL$=CHR$(125)
- 4175 IFL$=" "AND LINE=15THENL$=CHR$(96)
- 4180 IF SET>0 OR PAGE>0 OR CHAN>3 OR COL>0 THEN4190
- 4182 IF LINE<>7THENPRINT#1," ";:GOTO4186
- 4184 PRINT#1,CHR$(ROW+97);" ";
- 4186 PRINT#1,CHR$(LINE+65);CHR$(125);
- 4190 PRINT#1,L$;
- 4200 NEXT
- 4205 NEXT
- 4210 NEXT:IF PAGE=0THEN4214
- 4211 PRINT#1,CHR$(LINE+65);" ";
- 4212 L$=" ":IF LINE=7THENL$=CHR$(ROW+97)
- 4213 PRINT#1,L$;
- 4214 PRINT#1,CHR$(13);
- 4215 NEXT
- 4216 NEXT
- 4221 IF PAGE=0THENPRINT#1," ";
- 4222 FORI=0TO7:FORJ=0TO15:PRINT#1,CHR$(J+65);
- 4223 NEXTJ,I:PRINT#1,CHR$(13);CHR$(13);
- 4224 IF PAGE=0THENPRINT#1," ";
- 4225 PRINT#1," ";:FORI=0TO7:PRINT#1,CHR$(I*(PAGE+1)+97);
- 4226 PRINT#1," ";:NEXT:PRINT#1,CHR$(13);
- 4227 PRINT#1,CHR$(12):REM START SECOND PAGE AT TOP OF FORM
- 4228 NEXT
- 4230 FORI=10TO1STEP-1:CLOSEI:NEXT:CLOSE15
- 4235 POKE54273,70:POKE54278,249:POKE54296,15:POKE54276,17:POKE54276,16
- 4240 FORI=1TO400:NEXT:GETQ$:IFQ$=""THEN4235
- 4250 FORI=10TO1STEP-1:CLOSEI:NEXT:CLOSE15:END
- 4260 :
- 4261 REM CODE ON DISK: ITEM: SYMBOL:
- 4262 REM $00 DEEP SEA SPACE
- 4263 REM $01 SHALLOWS .
- 4264 REM $02 REEF/SHOAL =
- 4265 REM $03 MARSH +
- 4266 REM $04 GRASS -
- 4267 REM $05 BRUSH X
- 4268 REM $06 FOREST *
- 4269 REM $07 HILLS O
- 4270 REM $08 MOUNTAINS @
- 4271 REM $09 DUNGEONS D
- 4272 REM $0A TOWNS T
- 4273 REM $0B CASTLE C
- 4274 REM $0C VILLAGE V
- 4275 REM $0D BRIT. CASTLE C
- 4276 REM $0E BRIT. CASTLE C
- 4277 REM $0F BRIT. CASTLE C
- 4278 REM $17 BRIDGE B
- 4279 REM $1D RUINS R
- 4280 REM $1E SHRINE S
- 4281 REM $3D ANKH A
- 4282 REM $46 FORCE FIELD #
- 4283 REM $4C FORCE FIELD %
- 4285 :
- 4286 :
- 4290 REM LEFT HALF OF MAP
- 4291 :
- 4300 DATA1,1,1,2,1,3,1,4,1,5,1,6,1,7,1,8
- 4301 DATA1,17,1,18,1,19,1,20,2,0,2,1,2,2,2,3
- 4302 DATA2,12,2,13,2,14,2,15,2,16,2,17,2,18,2,19
- 4303 DATA3,7,3,8,3,9,3,10,3,11,3,12,3,13,3,14
- 4304 DATA4,2,4,3,4,4,4,5,4,6,4,7,4,8,4,9
- 4305 DATA4,18,4,19,4,20,5,0,5,1,5,2,5,3,5,4
- 4306 DATA5,13,5,14,5,15,5,16,5,17,5,18,5,19,5,20
- 4307 DATA6,8,6,9,6,10,6,11,6,12,6,13,6,14,6,15
- 4308 DATA7,3,7,4,7,5,7,6,7,7,7,8,7,9,7,10
- 4309 DATA7,19,7,20,8,0,8,1,8,2,8,3,8,4,8,5
- 4310 DATA8,14,8,15,8,16,8,17,8,18,8,19,8,20,9,0
- 4311 DATA9,9,9,10,9,11,9,12,9,13,9,14,9,15,9,16
- 4312 DATA10,4,10,5,10,6,10,7,10,8,10,9,10,10,10,11
- 4313 DATA10,20,11,0,11,1,11,2,11,3,11,4,11,5,11,6
- 4314 DATA11,15,11,16,11,17,11,18,11,19,11,20,12,0,12,1
- 4315 DATA12,10,12,11,12,12,12,13,12,14,12,15,12,16,12,17
- 4320 :
- 4321 :
- 4390 REM RIGHT HALF OF MAP
- 4391 :
- 4400 DATA1,9,1,10,1,11,1,12,1,13,1,14,1,15,1,16
- 4401 DATA2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11
- 4402 DATA2,20,3,0,3,1,3,2,3,3,3,4,3,5,3,6
- 4403 DATA3,15,3,16,3,17,3,18,3,19,3,20,4,0,4,1
- 4404 DATA4,10,4,11,4,12,4,13,4,14,4,15,4,16,4,17
- 4405 DATA5,5,5,6,5,7,5,8,5,9,5,10,5,11,5,12
- 4406 DATA6,0,6,1,6,2,6,3,6,4,6,5,6,6,6,7
- 4407 DATA6,16,6,17,6,18,6,19,6,20,7,0,7,1,7,2
- 4408 DATA7,11,7,12,7,13,7,14,7,15,7,16,7,17,7,18
- 4409 DATA8,6,8,7,8,8,8,9,8,10,8,11,8,12,8,13
- 4410 DATA9,1,9,2,9,3,9,4,9,5,9,6,9,7,9,8
- 4411 DATA9,17,9,18,9,19,9,20,10,0,10,1,10,2,10,3
- 4412 DATA10,12,10,13,10,14,10,15,10,16,10,17,10,18,10,19
- 4413 DATA11,7,11,8,11,9,11,10,11,11,11,12,11,13,11,14
- 4414 DATA12,2,12,3,12,4,12,5,12,6,12,7,12,8,12,9
- 4415 DATA12,18,12,19,12,20,13,0,13,1,13,2,13,3,13,4
-